package com.moqianfan.mcuassistant.comm;

import android.app.Application;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;

import com.moqianfan.mcuassistant.R;
import com.moqianfan.mcuassistant.database.DaoMaster;
import com.moqianfan.mcuassistant.database.DaoSession;
import com.moqianfan.mcuassistant.view.PicassoImageLoader;
import com.moqianfan.mcuassistant.view.PicassoPauseOnScrollListener;
import com.umeng.analytics.MobclickAgent;

import net.youmi.android.AdManager;

import cn.bmob.v3.Bmob;
import cn.finalteam.galleryfinal.CoreConfig;
import cn.finalteam.galleryfinal.FunctionConfig;
import cn.finalteam.galleryfinal.GalleryFinal;
import cn.finalteam.galleryfinal.ThemeConfig;

/**
 * Created by Administrator on 2017/6/9.
 * Application
 */

public class AppConfig extends Application {
    private static AppConfig appConfig;
    private DaoSession mDaoSession;

    @Override
    public void onCreate() {
        super.onCreate();
        appConfig = this;
        setDatabase();
        Bmob.initialize(this, "0959bd9f599b72f7136f7248cc3b0796");
        MobclickAgent.UMAnalyticsConfig config = new MobclickAgent.
                UMAnalyticsConfig(getApplicationContext(), "555c7f2767e58e13c700261c", "360", MobclickAgent.EScenarioType.E_UM_NORMAL);
        MobclickAgent.startWithConfigure(config);

        //初始化有米广告
        AdManager.getInstance(this).init(Common.YOUMI_APPID,Common.YOUMI_SECRET,true);

        ThemeConfig theme = new ThemeConfig.Builder()
                .setTitleBarBgColor(getResources().getColor(R.color.colorMain))
                .setTitleBarTextColor(Color.WHITE)
                .setTitleBarIconColor(Color.WHITE)
                .setFabNornalColor(getResources().getColor(R.color.colorMain))
                .setFabPressedColor(getResources().getColor(R.color.colorLightMain))
                .setIconBack(R.drawable.ic_back)
                .setIconCamera(android.R.drawable.ic_menu_camera)
                .setCheckNornalColor(Color.WHITE)
                .setCheckSelectedColor(getResources().getColor(R.color.colorMain))
                .build();
        FunctionConfig functionConfig = new FunctionConfig.Builder()
                .setEnableCamera(true)
                .setEnableEdit(true)
                .setEnableCrop(true)
                .setEnableRotate(true)
                .setCropSquare(true)
                .setEnablePreview(false)
                .build();
        CoreConfig config1 = new CoreConfig.Builder(this, new PicassoImageLoader(), theme)
                .setFunctionConfig(functionConfig)
                .setPauseOnScrollListener(new PicassoPauseOnScrollListener(false, true))
                .build();
        GalleryFinal.init(config1);
    }

    public static AppConfig getAppConfig() {
        return appConfig;
    }

    /**
     * 设置greenDao
     */
    private void setDatabase() {
        // 通过 DaoMaster 的内部类 DevOpenHelper，你可以得到一个便利的 SQLiteOpenHelper 对象。
        // 可能你已经注意到了，你并不需要去编写「CREATE TABLE」这样的 SQL 语句，因为 greenDAO 已经帮你做了。
        // 注意：默认的 DaoMaster.DevOpenHelper 会在数据库升级时，删除所有的表，意味着这将导致数据的丢失。
        // 所以，在正式的项目中，你还应该做一层封装，来实现数据库的安全升级。
        MyDaoHelper mHelper = new MyDaoHelper(this, "supter.db", null);
        SQLiteDatabase db = mHelper.getWritableDatabase();
        // 注意：该数据库连接属于 DaoMaster，所以多个 Session 指的是相同的数据库连接。
        DaoMaster mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }

    public DaoSession getDaoSession() {
        return mDaoSession;
    }
}
